.\"
.Dd September 10, 2021
.Dt DUMMYNET 4
.Os
.Sh NAME
.Nm dummynet
.Nd traffic shaper, bandwidth manager and delay emulator
.Sh DESCRIPTION
The
.Nm
system facility permits the control of traffic
going through the various network interfaces, by applying bandwidth
and queue size limitations, implementing different scheduling and queue
management policies, and emulating delays and losses.
.Pp
The user interface for
.Nm
is implemented by the
.Xr dnctl 8
utility, so please refer to the
.Xr dnctl 8
manpage for a complete description of the
.Nm
capabilities and how to use it.
.Ss Kernel Options
The following options in the kernel configuration file are related to
.Nm
operation:
.Pp
.Bl -tag -width ".Dv IPFIREWALL_VERBOSE_LIMIT" -offset indent -compact
.It Dv IPFIREWALL
enable ipfirewall (if
.Nm
is to be used with ipfw)
.It Dv IPFIREWALL_VERBOSE
enable firewall output
.It Dv IPFIREWALL_VERBOSE_LIMIT
limit firewall output
.It Dv DUMMYNET
enable
.Nm
operation
.It Dv HZ
set the timer granularity
.El
.Pp
Generally, the following options are required:
.Bd -literal -offset indent
options IPFIREWALL
options DUMMYNET
options HZ=1000		# strongly recommended
.Ed
.Pp
Additionally, one may want to increase the number
of mbuf clusters (used to store network packets) according to the
sum of the bandwidth-delay products and queue sizes of all configured
pipes.
.Sh SEE ALSO
.Xr setsockopt 2 ,
.Xr if_bridge 4 ,
.Xr ip 4 ,
.Xr pf.conf 5 ,
.Xr dnctl 8 ,
.Xr ipfw 8 ,
.Xr sysctl 8
.Sh HISTORY
The
.Nm
facility
was initially implemented as a testing tool for
.Tn TCP
congestion control by
.An Luigi Rizzo Aq Mt luigi@iet.unipi.it ,
as described on ACM Computer Communication Review, Jan.97 issue.
Later it has been modified to work at the
.Tn IP
and bridging levels, integrated with the
.Xr ipfw 4
packet filter, and extended to
support multiple queueing and scheduling policies.
